package com.campus.customer.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.campus.customer.entity.Location;
import com.campus.customer.mapper.LocationMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

/**
 * <p>
 * 位置表 服务实现类
 * </p>
 *
 * @author ZhaoYuJie
 * @since 2025-04-02
 */
@Service
public class LocationService extends ServiceImpl<LocationMapper, Location> {

    /**
     * 获取校园中心位置配置
     * 默认返回第一条记录作为校园中心位置
     * 
     * @return 校园中心位置信息
     */
    public Location getCampusCenter() {
        LambdaQueryWrapper<Location> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.orderByAsc(Location::getId).last("LIMIT 1");
        
        Location campusCenter = this.getOne(queryWrapper);
        
        // 如果数据库中没有位置数据，返回默认配置
        if (campusCenter == null) {
            campusCenter = createDefaultCampusCenter();
        }
        
        return campusCenter;
    }
    
    /**
     * 创建默认的校园中心位置配置
     * 
     * @return 默认校园中心位置
     */
    private Location createDefaultCampusCenter() {
        Location defaultLocation = new Location();
        defaultLocation.setId(0);
        defaultLocation.setName("校园中心");
        defaultLocation.setAddress("校园中心位置");
        defaultLocation.setLatitude(new java.math.BigDecimal("39.9042"));
        defaultLocation.setLongitude(new java.math.BigDecimal("116.4074"));
        defaultLocation.setRadius(2000); // 默认半径2公里
        return defaultLocation;
    }
}
